import 'package:flutter/material.dart';

import 'package:get/get.dart';
import 'package:getx_learn/app/common/widgets/widgets.dart';

import '../controllers/statemixin_page_controller.dart';

class StatemixinPageView extends GetView<StatemixinPageController> {
  const StatemixinPageView({Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: getAppBar(context: context, title: "StatemixinPageView"),
      body: ListView(
        children: [
          Text("""
          混入 StateMixin<?> 之后，就可以调用 change api，这样状态上的可读性更明确，
          
          change(response, status: RxStatus.success());
          """),
          Divider(),
          ElevatedButton(
            onPressed: () {
              controller.fetchWeatherInfo();
            },
            child: Text("获取天气数据（GET）"),
          ),
          ElevatedButton(
            onPressed: () {
              controller.fetchAppUpdate();
            },
            child: Text("程序升级信息（POST）"),
          ),
          // 这个有自带的 loading
          controller.obx(
                (str) {
              return Text("请求内容: ${str}");
            },
            // 加载视图
            onLoading: Text("加载中"),
            // 空视图
            onEmpty: Text("没有数据"),
            // 加载异常视图
            onError: (error) {
              return Text("加载异常: ${error}");
            },
          ),
        ],
      ),
    );
  }
}
